package main

import (
	"fmt"
	"regexp"
)

const text = `
my email is kaka@gmail.com
my email2 is kaka@qq.com
my email3 is kaka@163.com
`

func main() {

	re := regexp.MustCompile(`([a-zA-Z0-9]+)@([a-zA-Z0-9]+)\.([a-zA-Z0-9]+)`)
	// 第一个参数为匹配的字符，第二个参数是寻找多少个，-1是全找
	all := re.FindAllStringSubmatch(text, -1)

	for _, m := range all {
		fmt.Println(m)
	}

	/**
	这种方式是不确定输入的值是否正确
	*/
	//compile, err := regexp.Compile("kaka@gmail.com")
	//	//if err != nil {
	//	//	panic(err)
	//	//}
	//	//match := compile.FindString(text)
	//	//fmt.Println(match)

	/**
	这种方式的用法输入的内容必须符合规则
	*/
	// my name is kaka@gmail.com  返回了所有字符
	//re := regexp.MustCompile(`.+@.+\..+`)
	// 这种方式就找不到
	//re := regexp.MustCompile("kaka1@gmail.com")

	// kaka@gmail.com 这种方式就可以完全匹配
	//re := regexp.MustCompile(`[a-zA-Z0-9]+@[a-zA-Z0-9]+\.[a-zA-Z0-9]+`)
	//match := re.FindString(text)
	//// kaka@gmail.com
	//fmt.Println(match)
}
